package com.dkd.day20250718;

import java.util.*;

public class Main28 {
    public static void main(String[] args) {
        //流浪地球计划在赤道上均匀部署了N个转向发动机，按位置顺序编号为0~N-1。
        //
        //初始状态下所有的发动机都是未启动状态;
        //发动机启动的方式分为”手动启动"和”关联启动"两种方式;
        //如果在时刻1一个发动机被启动，下一个时刻2与之相邻的两个发动机就会被”关联启动”;
        //如果准备启动某个发动机时，它已经被启动了，则什么都不用做;
        //发动机0与发动机N-1是相邻的;
        //地球联合政府准备挑选某些发动机在某些时刻进行“手动启动”。当然最终所有的发动机都会被启动。
        //
        //哪些发动机最晚被启动呢?
        Scanner sc = new Scanner(System.in);
        int number = sc.nextInt();
        int point = sc.nextInt();
        int[][] matrix = new int[point][2];
        for (int i = 0; i < point; i++) {
            for (int j = 0; j < 2; j++) {
                matrix[i][j] = sc.nextInt();
            }
        }
        solve(number,point,matrix);

    }

    public static void solve(int number,int point,int[][] matrix) {
        int[] arr = new int[number];
        Arrays.fill(arr, -1);


        Queue<int[]> q = new LinkedList<>();
        arr[matrix[0][1]] = 1;
        arr[matrix[1][1]] = 1;

        q.add(matrix[0]);
        q.add(matrix[1]);

        int time =0;

        List<Integer> ans = new ArrayList<>();

        //循环
        while (!q.isEmpty()) {
            int[] temp = q.peek();
            if (temp[0] == time) {
                ans.add(temp[1]);
                q.remove();
                int left = temp[1]-1<0?number-1:temp[1]-1;
                int right = temp[1]+1>=number?0:temp[1]+1;
                if (arr[left] == -1) {
                    arr[left] = 1;
                    q.add(new int[]{time+1,left});
                }
                if (arr[right] == -1) {
                    arr[right] = 1;
                    q.add(new int[]{time+1,right});
                }

                continue;
            }


            if (temp[0] >time) {
                ans.clear();
                if (temp[0] == time+1) {
                    time++;
                }else{
                    temp = q.poll();
                    q.add(temp);
                }
            }
        }
        System.out.println(ans.size());
        ans.sort(Comparator.naturalOrder());
        for (int i = 0; i < ans.size(); i++) {
            System.out.print(ans.get(i));
            System.out.print(" ");
        }

    }
}
